[READ-ONLY] Mirror of https://github.com/flo-bit/skywatched. review movies and tv shows, based on at proto skywatched.app
0

Configure Feed

Select the types of activity you want to include in your feed.

skywatched / src / routes / game / [kind] / [id] / [kind2] / [id2] / [counter] / +page.server.ts
4.2 kB 174 lines
1import { getRecentRecordsForItem } from '$lib/db.js'; 2import { 3 getCast, 4 getDetails, 5 getRecommendations, 6 getTrailer, 7 getWatchProviders, 8 getPersonDetails, 9 getCombinedCredits 10} from '$lib/server/movies'; 11import { error, redirect } from '@sveltejs/kit'; 12 13/** @type {import('./$types').PageServerLoad} */ 14export async function load(event) { 15 const id = parseInt(event.params.id.split('-')[0]); 16 const id2 = parseInt(event.params.id2.split('-')[0]); 17 const kind = event.params.kind; 18 const kind2 = event.params.kind2; 19 const ids = id; 20 const ids2 = id2; 21 const couter = event.params.counter; 22 if (kind == kind2 && id == id2) { 23 redirect(302, '/win/' + couter); 24 } 25 26 if (kind !== 'movie' && kind !== 'tv' && kind !== 'cast') { 27 return error(404, 'Not found'); 28 } 29 if (kind2 !== 'movie' && kind2 !== 'tv' && kind2 !== 'cast') { 30 return error(404, 'Not found'); 31 } 32 33 if (!id) { 34 return error(404, 'Not found'); 35 } 36 if (!id2) { 37 return error(404, 'Not found'); 38 } 39 var temp; 40 var temp2; 41 var casting; 42 var casting2; 43 var person; 44 var person2; 45 var credits; 46 var credits2; 47 if (kind === 'cast') { 48 temp = getDetails(68730, 'movie'); 49 casting = getCast(68730, 'movie'); 50 person = getPersonDetails(id); 51 person2 = getPersonDetails(id2); 52 credits = id; 53 credits2 = id2; 54 } else { 55 temp = getDetails(id, kind); 56 casting = getCast(id, kind); 57 person = getPersonDetails(37625); 58 person2 = getPersonDetails(37625); 59 credits = 37625; 60 credits2 = 37625; 61 } 62 if (kind2 === 'cast') { 63 temp2 = getDetails(68730, 'movie'); 64 casting2 = getCast(68730, 'movie'); 65 person2 = getPersonDetails(id2); 66 credits2 = id2; 67 } else { 68 temp2 = getDetails(id2, kind2); 69 casting2 = getCast(id2, kind2); 70 person2 = getPersonDetails(37625); 71 credits2 = 37625; 72 } 73 const resultPromise = temp; 74 const personPromise = person; 75 const person2Promise = person2; 76 //if(kind==="cast"){ 77 // const resultPromise = getDetails(68730,"movie") 78 //} 79 //else{ 80 // const resultPromise = getDetails(id, kind); 81 //} 82 const resultPromise2 = temp2; 83 84 const castPromise = casting; 85 const castPromise2 = casting2; 86 const creditsPromise = credits; 87 const creditsPromise2 = credits2; 88 const combinedCredits = await getCombinedCredits(credits); 89 const creditsSet = new Set<string>(); 90 const combinedCredits2 = await getCombinedCredits(credits2); 91 const creditsSet2 = new Set<string>(); 92 combinedCredits.cast = combinedCredits.cast 93 .filter((item: { id: string; poster_path: string }) => { 94 if (creditsSet.has(item.id)) { 95 return false; 96 } 97 creditsSet.add(item.id); 98 return item.poster_path; 99 }) 100 .sort((a: { order: number }, b: { order: number }) => b.order - a.order) 101 .map((item: { id: string; media_type: string }) => { 102 return { 103 ...item, 104 movieId: item.media_type === 'movie' ? item.id : undefined, 105 showId: item.media_type === 'tv' ? item.id : undefined 106 }; 107 }); 108 combinedCredits2.cast = combinedCredits2.cast 109 .filter((item: { id: string; poster_path: string }) => { 110 if (creditsSet2.has(item.id)) { 111 return false; 112 } 113 creditsSet2.add(item.id); 114 return item.poster_path; 115 }) 116 .sort((a: { order: number }, b: { order: number }) => b.order - a.order) 117 .map((item: { id: string; media_type: string }) => { 118 return { 119 ...item, 120 movieId: item.media_type === 'movie' ? item.id : undefined, 121 showId: item.media_type === 'tv' ? item.id : undefined 122 }; 123 }); 124 125 const [ 126 result, 127 result2, 128 cast, 129 cast2, 130 personDetails, 131 person2Details, 132 creditDetails, 133 creditDetails2 134 ] = await Promise.all([ 135 resultPromise, 136 resultPromise2, 137 castPromise, 138 castPromise2, 139 personPromise, 140 person2Promise, 141 creditsPromise, 142 creditsPromise2 143 ]); 144 145 if (!result || result.success === false) { 146 return error(404, 'Not found'); 147 } 148 149 return { 150 result: { 151 ...result, 152 movieId: kind === 'movie' ? id : undefined, 153 showId: kind === 'tv' ? id : undefined 154 }, 155 result2: { 156 ...result2, 157 movieId: kind2 === 'movie' ? id2 : undefined, 158 showId: kind2 === 'tv' ? id2 : undefined 159 }, 160 kind, 161 kind2, 162 cast, 163 cast2, 164 couter, 165 personDetails, 166 person2Details, 167 creditDetails, 168 creditDetails2, 169 ids, 170 ids2, 171 combinedCredits: combinedCredits.cast, 172 combinedCredits2: combinedCredits2.cast 173 }; 174}